#ifndef __FILE_H__
#define __FILE_H__

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include "lcd.h"

typedef struct file_node
{
    char name[32];
    char path[256];
    struct file_node *prev;
    struct file_node *next;
} file_node_t, *file_node_p;

extern file_node_p file_head; // 文件链表头

int findBMPByDir(char *path, file_node_p headNode);                                                                // 根据路径查找BMP文件
int *getBMP_IMG(char *path, int width, int height);                                                                // 获取BMP文件图像
void put_bmp(int *buf, LCDBuffer lcd_mmap, int IMGCount, int currIMG);                                             // 将BMP文件写入内存
void show_bmp(file_node_p headNode, int currIMG, LCDBuffer lcd_mmap, int direction, int touch_type, int IMGCount); // 显示BMP文件
void put_bmp_left(int *buf, LCDBuffer lcd_mmap, int IMGCount, int currIMG);
void put_bmp_right(int *buf, LCDBuffer lcd_mmap, int IMGCount, int currIMG);

file_node_p file_node_init();
void file_node_create(file_node_p headNode, char *name, char *path);
void print_file_node(file_node_p headNode);
file_node_p find_file_node(file_node_p headNode, int count);
int get_file_node_num(file_node_p headNode);

#endif